/**
 * 
 */
package com.yidu.erp.action.BeyondRole;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.erp.model.BeyondRole;
import com.yidu.common.Pages;
import com.yidu.common.SsmMessage;

import com.yidu.erp.service.BeyondRole.RoleService;

/**
 * 角色action
 * @author wws
 * @date  2017年11月7日
 */
@Controller
@RequestMapping("role")
public class BeyondRoleAction {
	
	@Resource
	private RoleService roleService ;
	

	/**
	 * 用框架显示角色信息
	 * @param page
	 * @param limit
	 * @param mxRole
	 * @return
	 */
	@RequestMapping("/getAllrole")
	@ResponseBody
	public Map<String, Object> getAllrole(int page,int limit,BeyondRole beyondRole){
		Pages pages = new Pages();//新建一个分页对象
		if(page>0){//判断传过来的页数是否有值
			pages.setCurPage(page);//给分页对象赋值当前页数
		}
		pages.setMaxResult(limit);//给分页对象赋值每页显示最大行数
		System.out.println("开始行数==="+pages.getFirstRows()+"最大显示行数==="+pages.getMaxResult());
		Map<String, Object> rolemap = new HashMap<String, Object>();//新建一个角色map

		rolemap.put("firstRows", pages.getFirstRows());//给角色map赋值分页对象的开始行数
		rolemap.put("maxResult", pages.getMaxResult());//给角色map赋值每页显示最大行数
		rolemap.put("roleName", beyondRole.getRoleName());//给角色map赋值模块名称
		List<BeyondRole> roleList = roleService.getAllrole(rolemap);//新建一个角色集合,调用查询所有角色方法
		Map<String, Object> map = new HashMap<String, Object>();//新建一个map
		int rows = roleService.findAllRowCount(rolemap);//根据角色map查询总行数
		map.put("data", roleList);//放角色集合
		map.put("count",rows);//显示几行
		map.put("code", 0);//第几行开始
		map.put("msg", "");//消息
		
		return map;
		
	}
	
	/**
	 * 删除方法(就是把isva修改为  否)
	 * @param m
	 * @return
	 */
	@RequestMapping("delete")
	@ResponseBody
	public SsmMessage delete(BeyondRole role){
		SsmMessage mes=new SsmMessage();//新建一个消息类
		role.setIsva("0");//给角色状态属性设置无效
		String roleId=role.getRoleId();//新建一个String，赋值角色的角色id
		System.out.println("id==="+roleId);
		int rows=roleService.updateByPrimaryKeySelective(role);//根据角色对象调用修改方法，返回行数
		if(rows>0){//判断是否有影响行数
			mes.setState(SsmMessage.SUCCESS);//消息状态赋值给消息对象
			mes.setMes(SsmMessage.SUCCESS_MES);//消息信息赋值给消息对象
			
		}else{
			mes.setState(SsmMessage.ERROR);//消息状态赋值给消息对象
			mes.setMes(SsmMessage.ERROR_MES);//消息信息赋值给消息对象
			
		}
		return mes;//返回消息对象

	}
	
	/**
	 * 根据id查询数据
	 * @param stId
	 * @return
	 */
	@RequestMapping("/showUpdate")
	@ResponseBody
	public BeyondRole showUpdate(String roleId){
		System.out.println("id"+roleId);
		BeyondRole role =  roleService.selectByPrimaryKey(roleId);//根据角色id查询返回角色对象
		return role;//返回角色对象
	}
	
	/**
	 * 增加或者修改
	 * @param m
	 * @return
	 */
	@RequestMapping("/addOrUpdate")
	@ResponseBody
	public SsmMessage addOrUpdate(BeyondRole role){
		SsmMessage mes=new SsmMessage();//新建一个消息对象
		String roleId=role.getRoleId();//新建一个String，赋值角色的角色id
		System.out.println("id==="+roleId);
		if(roleId==""){//判断角色id为空
			role.setIsva("1");//给角色状态赋值有效
			int rows=roleService.insertSelective(role);//根据角色对象调用增加方法，返回行数
			if(rows>0){//判断是否有影响行数
				mes.setState(SsmMessage.SUCCESS);//消息状态赋值给消息对象
				mes.setMes(SsmMessage.SUCCESS_MES);//消息信息赋值给消息对象
				
			}else{
				mes.setState(SsmMessage.ERROR);//消息状态赋值给消息对象
				mes.setMes(SsmMessage.ERROR_MES);//消息信息赋值给消息对象
				
			}
		}else{
			int rows=roleService.updateByPrimaryKeySelective(role);//根据角色对象调用修改方法，返回行数
			if(rows>0){//判断是否有影响行数
				mes.setState(SsmMessage.SUCCESS);//消息状态赋值给消息对象
				mes.setMes(SsmMessage.SUCCESS_MES);//消息信息赋值给消息对象
				
			}else{
				mes.setState(SsmMessage.ERROR);//消息状态赋值给消息对象
				mes.setMes(SsmMessage.ERROR_MES);//消息信息赋值给消息对象
				
			}
		}
		
		return mes;//返回消息对象
	}
	
	/**
	 * 用户分配角色方法
	 * @return
	 */
	@RequestMapping("/showroleAll")
	@ResponseBody
	public List<BeyondRole> showroleAll(){
		List<BeyondRole> roleList = roleService.showroleAll();//新建一个角色集合，调用用户分配角色方法
		
		return roleList;//返回角色集合
	}
	

}
